home *** CD-ROM | disk | FTP | other *** search
-
- jmp_buf env;
- int valid_env = 0;
-
- void
- sig_handler(sig)
- int sig;
- {
- assert(sig >= 0 && sig < NSIG);
-
- if (!signals[sig].action) {
- /* always an error except when sig == 0 */
- if (sig == 0) return;
- fprintf(stderr,"unexpected signal delivered - %s (%d)\n",
- signal_to_string(sig),sig);
- } else {
- signal(sig, sig_handler);
- eval(signals[sig].action);
- }
-
- if (valid_env) longjmp(env,1);
- }
-
-
-
-